Create a SWT tree (lazy) : Tree « SWT JFace Eclipse « Java






Create a SWT tree (lazy)

Create a SWT tree (lazy)


/*
 * Tree example snippet: create a tree (lazy)
 *
 * For a list of all SWT example snippets see
 * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
 */
import java.io.File;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;

public class Snippet8 {

  public static void main(String[] args) {
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Lazy Tree");
    shell.setLayout(new FillLayout());
    final Tree tree = new Tree(shell, SWT.BORDER);
    File[] roots = File.listRoots();
    for (int i = 0; i < roots.length; i++) {
      TreeItem root = new TreeItem(tree, 0);
      root.setText(roots[i].toString());
      root.setData(roots[i]);
      new TreeItem(root, 0);
    }
    tree.addListener(SWT.Expand, new Listener() {
      public void handleEvent(final Event event) {
        final TreeItem root = (TreeItem) event.item;
        TreeItem[] items = root.getItems();
        for (int i = 0; i < items.length; i++) {
          if (items[i].getData() != null)
            return;
          items[i].dispose();
        }
        File file = (File) root.getData();
        File[] files = file.listFiles();
        if (files == null)
          return;
        for (int i = 0; i < files.length; i++) {
          TreeItem item = new TreeItem(root, 0);
          item.setText(files[i].getName());
          item.setData(files[i]);
          if (files[i].isDirectory()) {
            new TreeItem(item, 0);
          }
        }
      }
    });
    Point size = tree.computeSize(300, SWT.DEFAULT);
    int width = Math.max(300, size.x);
    int height = Math.max(300, size.y);
    shell.setSize(shell.computeSize(width, height));
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}


           
       








Related examples in the same category

1.SWT Tree With Multi columnsSWT Tree With Multi columns
2.Detect Mouse Down In SWT Tree ItemDetect Mouse Down In SWT Tree Item
3.Limit selection to items that match a pattern in SWT TreeLimit selection to items that match a pattern in SWT Tree
4.SWT Tree Simple DemoSWT Tree Simple Demo
5.Category Tree
6.Simple TreeSimple Tree
7.Bookmark OrganizerBookmark Organizer
8.Displays a single-selection tree, a multi-selection tree, and a checkbox treeDisplays a single-selection tree, a multi-selection tree, and a checkbox tree
9.Demonstrates TableTreeDemonstrates TableTree
10.Demonstrates TreeEditorDemonstrates TreeEditor
11.Tree ExampleTree Example
12.Tree Example 2
13.Demonstrates CheckboxTreeViewer
14.Demonstrates TreeViewerDemonstrates TreeViewer
15.SWT Tree SWT Tree
16.SWT Tree Composite
17.Print selected items in a SWT treePrint selected items in a SWT tree
18.Insert a SWT tree item (at an index)Insert a SWT tree item (at an index)
19.Detect a selection or check event in a tree (SWT.CHECK)Detect a selection or check event in a tree (SWT.CHECK)
20.Create a treeCreate a tree